//
//  IAudioDecoder.h
//  ScenesPlayer
//
//  Created by Branch on 2016/11/1.
//  Copyright © 2016年 Scenes. All rights reserved.
//

#ifndef __ScenesAudioMix_IAudioDecoder_H__
#define __ScenesAudioMix_IAudioDecoder_H__

#include <stdio.h>
#include <stdint.h>

//音频解码器类的抽象接口，继承该类以使用自定义的音频解码器

class IAudioDecoder {
public:
    
    /**
     给解码器输入未解码的音频数据

     @param buff 数据地址
     @param buffLen 数据长度
     @param sampleTimeUs 该帧数据的pts，单位：微秒
     @return 成功返回ture，失败返回false
     */
    virtual bool inputBuff(uint8_t* buff,uint32_t buffLen,int64_t sampleTimeUs) = 0;
    

    
    /**
     从解码器获取一帧已解码的音频数据

     @param out_buff 接收数据的地址的指针
     @param out_buffLen 接收数据的长度的变量的指针
     @param out_sampleTimeUs 接收数据的pts的变量的指针
     @return 成功返回true，失败返回false
     */
    virtual bool outputBuff(uint8_t** out_buff,uint32_t* out_buffLen,int64_t* out_sampleTimeUs) = 0;
    
    

};

#endif /* __ScenesAudioMix_IAudioDecoder_H__ */
